#include<stdio.h>
#include<stdlib.h>
const int N=20;
int sount=0;
int q[N];
void print(int n){
	count++;
	int i;
	printf("第%d个解：",count);
	for(i=1;i<=n;i++)
	printf("(%d,%d)",i,q[i]);
	printf("\n");
}

bool place(int k,int j){
	int i=1;
	while(i<k){
	  if ((q[i]==j)||abs(q[i]-j)==abs(i-k))
		return false;
	  i++;
	}
	return true;
}

void queen(int k,int n){
	int j;
	if(k>n)
	 print(n);
	else
	  for(j=1;j<=n;j++)
	  if(place(k,j)){
	  	q[k]=j;
	  	queen(k+1,n);
	  }
}

int main(){
	int n;
	printf("皇后问题(n<20)n:");
	scanf("%d",&n);
	if(n>20)
	 printf("n值太大，不能求解\n");
	else
	{
		printf("%d皇后问题求解如下：\n",n);
		queen(1.n);
		printf("\n");
	}
    return 1;
}








